package org.example.sword2offer.primary;

import java.util.HashMap;
import java.util.LinkedList;
import java.util.Map;
import java.util.Queue;

/**
 * @author: lynn
 * @Descript: 第一个只出现一次的字符
 * 在一个字符串(0<=字符串长度<=10000，全部由字母组成)中找到第一个只出现一次的字符,
 * 并返回它的位置, 如果没有则返回 -1（需要区分大小写）.
 * @date: 2021/3/15 21:43
 * @version: 1.0
 */
public class Q34_FirstNotRepeatingChar {
    public static void main(String[] args) {
        String str="dagegeygheidjgpta";
        System.out.println(FirstNotRepeatingChar(str));
    }

    private static int FirstNotRepeatingChar(String str){
        Map<String,Integer> map=new HashMap<>();
        int postion=-1;

        for (int i = 0; i <str.length() ; i++) {
            char c=str.charAt(i);
            if (map.get(String.valueOf(c))==null){
                map.put(String.valueOf(c),1);
            }else {
                map.put(String.valueOf(c),map.get(String.valueOf(c))+1);
            }
        }
        for (int i = 0; i <str.length() ; i++) {
            char c=str.charAt(i);
            if (map.get(String.valueOf(c))==1){
                postion=i;
                break;
            }
        }
        return postion;
    }
}
